package cn.tqfeiyang.smartadmin.commons.pagination;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.*;

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface QueryColumn {

    @AliasFor("column")
    String value() default "";

    /**
     * SQL栏位名称，可以指定多个栏位（逗号分割），例如 foo,bar,xyz
     *
     * 使用Object 不使用String的原因，是可以使用 @FieldNameConstants 生成的 Enum 对象
     */
    String column() default "";

    /**
     * SQL逻辑
     */
    QueryLogic logic() default QueryLogic.eq;

    /**
     * SQL关联，当指定多个栏位（逗号分割）时，条件之间用and还是用or
     */
    QueryJoin join() default QueryJoin.or;
}